Cloud computing is changing the way that enterprises and consumers utilize applications and carrying on their tasks. In cloud computing, data and applications are stored over the Internet instead of local storage, and instead of owning all the hardware and software that data and applications reside, an enterprise or a consumer (the “client” or “tenant”) utilizes some or majority of the needed hardware and software owned by a cloud provider to store the data and run the applications. Relying on sharing of resources among numerous clients, the cloud computing infrastructure (sometimes referred to as Infrastructure as a service (IaaS)) satisfies elastic demand spikes and achieves economies of scale thus becoming popular in various industries.
Efficient media content (e.g., video/audio) processing via cloud-hosted services has the potential of revolutionize the entertainment industry, sports industry and other related domains. Yet, it is challenging to process media contents (e.g., video/audio) efficiently and flexibly in a cloud computing environment, especially in real time streaming scenarios. In an IaaS model, computing resources are often offered as a number of virtual machines to a client requesting delivery of the media content, and a hypervisor manages the offered virtual machines. The virtual machines may reside on a computing device hosting applications of other clients, thus the virtual machines may become unavailable or suffer degraded performance due to activities of other clients or maintenance of the cloud provider. In addition, the resource needs of a media content in processing and delivering may change over time, thus the resource requests may need be adjusted dynamically.
Prior art has disclosed automating video work flows in a video streaming platform, see for example, U.S. Pat. No. 8,918,820 by Mio Babic, entitled “Video Workflow Automation Platform,” and U.S. Pat. No. 8,589,992 by Mio Babic, entitled “Video Workflow Automation Platform for Publishing a Video Feed in Multiple Formats.”